// 使用multer将文件存储到服务器指定位置
let Multer = require('multer');
let path = require('path');
// 创建Multer存储中心
let storage = Multer.diskStorage({
    // 指定文件存储文件夹位置
    destination(req,file,cb){
        // 设置上传文件的服务器存储位置
        // cb(error),第一个参数用于抛出错误
        /*
        * 获取用户调用接口信息
        * 1：上传头像：放置avatar文件夹下
        * 2：上传登录页背景图放置loginBg
        * 3：上传聊天背景图放置chartBg
        * */
        // 获取项目根路径
        // process.cwd()
        let {type} = req.body
        console.log('save---type----',type);
        switch (type) {
            case 'avatarUrl':cb(null,path.join(__dirname,'../','/uploads/avatar'));break
            case 'loginBgUrl': cb(null,path.join(__dirname,'../','/uploads/login-bg'));break
            case 'chartBgUrl':cb(null,path.join(__dirname,'../','uploads/chart-bg'));break
        }

    },
    //设置文件在服务器存储名称
    filename(req,file,cb){
        // 获取文件扩展名
        let {mimetype,originalname} = file
        let fileType = originalname.split('.')[1]
        // 获取用户ID
        // 获取上传类型
        let {type,userID} = req.body
        type = type.replace('BgUrl','');
        let fileName = `userID${userID}-${type}.${fileType}`;
        cb(null,fileName)
    }
})
// Multer配置
let MulterConfig = {
    storage
}
// single()上传单个文件
let MulterUpload = Multer(MulterConfig).single('file');
// 获取中间件处理请求
// upload(req,res,(err)=>{
//     if(err){
//         console.log('上传文件失败~')
//         return false
//     }
//
// })
module.exports = MulterUpload
